A database management system can support temporal tables that allow queries against an historical state of the data. In some implementations of such an approach, write operations on temporal tables do not physically overwrite existing records. Instead, write operations can insert a new version of a data record into the database without overwriting the prior version. The different versions of a data record have timestamps indicating their validity (e.g. the version of the data record having the most recent time stamp is the valid version and all versions with older time stamps are not valid. This approach allows an application to request processing of subsequent queries against a historical view of the database.
In addition to enabling features relating to tracking of valid or invalid versions of data records, a database management system can advantageously be capable of maintaining data according to its age. In general, data can be regarded as aged if it is no longer needed during normal business (which includes transactional processing as well as reporting use cases). Data that is only rarely accessed need not be kept in storage with high access speeds. For example, for a high performance, in-memory database, aged data or data that are rarely accessed can be transitioned from relatively expensive random access memory (RAM) to lower-cost hard disk drives, tape drives, optical media, or the like. The rules that define when a data item is aged can typically be defined by an application developer, a programmer, some other administrator, or the like for each type of data item (which may be for example a table, business object, a data cube, or the like). A typical aging rule might define that a sales order is aged if it is closed for 90 days.